/**
 * @file user_mqtt.h
 * @brief MQTT客户端头文件
 * 
 * 声明MQTT客户端相关的函数和数据结构。
 */

#ifndef USER_MQTT_H
#define USER_MQTT_H

#include <stdbool.h>
#include "esp_err.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 初始化MQTT客户端
 * 
 * 创建并配置MQTT客户端，启动连接过程。
 */
void user_mqtt_init(void);

/**
 * @brief 发布MQTT消息
 * 
 * @param topic 主题
 * @param data 数据
 * @return esp_err_t ESP_OK表示成功，其他表示失败
 */
esp_err_t user_mqtt_publish(const char *topic, const char *data);

/**
 * @brief 检查MQTT连接状态
 * 
 * @return bool true表示已连接，false表示未连接
 */
bool user_mqtt_is_connected(void);

/**
 * @brief 断开MQTT连接
 * 
 * 主动断开MQTT连接。
 */
void user_mqtt_disconnect(void);

#ifdef __cplusplus
}
#endif

#endif // USER_MQTT_H